package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.vo.EasyUITable;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;

import com.jt.service.ItemService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/item")
@RestController
public class ItemController {
	
	@Autowired
	private ItemService itemService;

	/**
	 * 业务说明：根据商品id，查询商品详细信息
	 * 参数：基于resultFul传值
	 */
	@RequestMapping("/query/item/desc/{itemId}")
	public SysResult findItemDescById(@PathVariable Long itemId){
		ItemDesc itemDesc = itemService.findItemDescById(itemId);
		return SysResult.success(itemDesc);
	}

	/**
	 * 业务: 实现商品的上架/下架
	 * url地址:
	 * 		/item/updateState/2 下架
	 * 		/item/updateState/1 上架
	 * 参数:  状态码信息/ids
	 * 返回值: SysResult对象
	 * */
	@RequestMapping("/updateStatus/{status}")
	public SysResult updateStatus(@PathVariable Integer status, Long[] ids){
		//没修改js之前的做法
//		Integer status = null;
//		if (updateState.equals("instock")){
//			 status = 2;
//		}
//		if (updateState.equals("reshelf")){
//			status = 1;
//		}

		itemService.updateStatus(ids,status);
		return SysResult.success();
	}


	/**
	 * 业务需求:  删除商品信息,
	 * 1.url地址:	/item/delete
	 * 2.参数:  ids: 100,101,102    serlvet(request)   同名提交问题
	 * 3.返回值: SysResult
	 * springMVC规则: 如果传递的数据是由,号分隔的字符串则可以使用数组接收
	 * 	原理：利用servlet中的request对象或response对象进行传递
	 * */
	@RequestMapping("/delete")
	public SysResult deleteItems(Long[] ids){
		//1.将ids字符串按照,号拆分
		itemService.deleteItems(ids);
		return SysResult.success();
	}
    /**
     * 业务需求: 实现商品编辑
	 * url:/item/update
     */
    @RequestMapping("/update")
	public SysResult doUpdate(Item item,ItemDesc itemDesc){
    	itemService.updateItem(item,itemDesc);
    	return SysResult.success();
	}

	/**业务需求：完成商品新增操作
	 * 	url:/item/save
	 * 	参数：提交整个表单，使用对象接受
	 * 	返回值：SysResult
	 */
	@RequestMapping("/save")
	public SysResult doSave(Item item, ItemDesc itemDesc){
			itemService.saveItem(item,itemDesc);
			return SysResult.success();

		/*try { //没使用全局异常处理
			itemService.saveItem(item);
			return SysResult.success();
		}catch(Exception e){
			e.printStackTrace();
			return SysResult.fail();
		}*/
	}

	/**
	 *  分页查询商品信息
	 *  参数 page 页数 rows 行数
	 * @return
	 */
	@RequestMapping("/query")
	public EasyUITable doFindObjects(Integer page,Integer rows){
		return itemService.findObjects(page,rows);
	}



}
